home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 11
/
Cream of the Crop 11-2.iso
/
extra
/
zen096.zip
/
ZENNODE.DOC
< prev
Wrap
Text File
|
1995-11-29
|
6KB
|
128 lines
ZenNode - Possibly the fastest DOOM(tm) BSP builder yet.
Version 0.96 by Marc Rousseau (rousseaum@pictel.com)
BACKGROUND:
After playing around with a few level editors for DOOM, I noticed that
most of them took a long time to build the NODES structure. Even worse, some
of them built NODES that didn't work! So, I decided I'd try writing a
NODES builder that 1) built valid NODES and 2) built them FAST. Well, after
a month or two of fooling around, ZenNode is here. I believe both objectives
have been reached. I've compared it to several other NODES builders out there
and it blows them all away! It's written entirely in C/C++ ( actually the
OS/2 version now has two routines in assembly ). It could probably be sped up
with a little assembly code ( or a better optimizing compiler ).
This .ZIP file contains essentially a beta of ZenNode. I'm still working
on a few more features, but it is a fully functional NODES builder for DOOM
.WAD files. ZenNode will rebuild either a single level or all the levels in
a .WAD file. This version will accept either DOOM, DOOM II, Heretic, and/or
HEXEN .WADs. Try it out. Let me know what you think.
DESCRIPTION:
ZenNode will read the level description from a .WAD file and create either
a new BLOCKMAP resource, REJECT resource, and/or NODES/SEGS/SSECTOR resources.
Levels in a .WAD may be specified on the command line, or, if none are
specified, all of the maps in a .WAD will be rebuilt.
As it completes a resource, ZenNode will print some information indicating
the results. When a BLOCKMAP is completed, it will display the new/old size
of the block map and a percentage of the block map that is actually used by
the map. After it rebuilds the BSP tree, it will display the number of new/
old NODES and SEGS that it created along with the original numbers.
NEW FEATURES:
Version 0.96:
Support for 'special effects' has been improved. Using the /nu switch,
you can affect the creation of sub-sectors. What this means ( for those of
you who don't know/care what a sub-sector is ) is that you can get most of
the special effects to work in your .WAD file. By default all sub-sectors
are unique. This works with most special effects ( ie: deep-water, invisible
stairs, ... ). If the effect you're trying to achieve doesn't work, try
turning off this feature with /nu-. This works for other effects, such as
light striking a wall from no visible source ( different sector ).
For those of you who think ZenNode is too slow <g>, there's a new method
for partitioning available for you! Both of the existing algorithms examine
every valid segment to see if they should be used as the partition for a node.
Examining every segment can slow things down, so if you really can't wait, if
ZenNode is way too slow for you, try the new algorithm. It only looks at a
small sub-set of segments instead ( saving you valuable seconds that could be
used testing your new .WAD ).
You can now 'customize' ZenNodes partitioning logic! The formula used to
determine the merit of a particular SEG is now user adjustable. You can now
set the four coefficients used in the calculation. If you don't like the
way ZenNode picks lines, or you just want to experiment, now you can actually
do something about it. The metric formula used is:
metric = ( L * R ) / ( x1 * S / x2 ) - ( x3 * S + x4 ) * S;
Where L, R, and S represent the # of SEGS to the left, right, and split by the
candidate SEG. Checks are made to avoid division by zero. The programmable
values x1, x2, x3, and x4 can be modified by setting the environment variables
ZEN_X1, ZEN_X2, ZEN_X3, and ZEN_X4 respectively. The default settings are:
x1=24, x2=5, x3 = 1, x4=25. ( Older versions of ZenNode used the values x1=4
or 5, x2=1, x3=0, x4=0 ). Algorithm 2 also uses a similar set of variables,
ZEN_Y1, ZEN_Y2, ZEN_Y3, and ZEN_Y4, where L, R, and S represent sectors rather
than SEGS. The default settings are: y1=0, y2=1, y3=1, y4=5 ). Have fun.
Version 0.95:
Support for Hexen has been added. This has been largely untested, but a
quick test of the hexen.wad file seems to be working. So, as soon as you get
your favorite WAD Editor to support Hexen, ZenNode will be ready!
ZenNode now offers two methods of partitioning your level. The new method
makes an attempt to minimize the average depth of the BSP tree. This should
make it slightly faster for the DOOM engine to render a screen, since it has
to traverse fewer NODES each time. The original method is still intact and
attempts to minimize the number of splits made. Currenty the new method has
not been optimized for speed but it is still reasonably fast.
BSPInfo has been included to allow you to gather information about how
your node builders compare to each other. You can see if one favors certain
characteristics over others, or just get an overall feel for their performance.
REQUIREMENTS:
1) A machine capable of running DOOM - 386 or better with a few Meg of RAM
2) A supported operating:
a) OS/2 2.0 or higher
b) DOS ( v?.?? or higher - tested with 5.0 & 6.22 )
c) a Win32 platform ( Windows NT or Windows 9x )
3) A .WAD file
ACKNOWLEDGMENTS:
DOOM & DOOM II are trademarks of id Software, inc.,(C)1994.
Heretic & HEXEN were developed by Raven Software for id Software.
■ Thanks to the guys at id Software for creating DOOM.
■ Thanks to Raven Software for putting out Heretic & Hexen.
■ Matt Fell and everyone who helped put together the unofficial DOOM specs.
This program was written entirely from the descriptions in this file and
wouldn't have been possible without it.
DISCLAIMER:
I've tested the .WADs generated by ZenNode and haven't found any fatal errors
or HOM (Hall-of-mirrors) side-effects from any level I've tested. However,
by using this program you assume all responsibility for lost/damaged files
resulting from the use of a .WAD generated by ZenNode. If you find a level
that causes either an error in ZenNode, HOMs, or any other problem inside
DOOM, please let me know.